import { Notify, Dialog, Loading } from 'quasar'

let loadingInstance = null

export default {
  msg(message) {
    Notify.create({
      message: message,
      color: 'info',
      position: 'top'
    })
  },

  // 错误消息
  msgError(message, error) {
    Notify.create({
      message: `${message}: ${error.message || '未知错误'}`,
      color: 'negative',
      icon: 'error',
      position: 'top'
    })
  },

  // 成功消息
  msgSuccess(message) {
    Notify.create({
      message: message,
      color: 'positive',
      icon: 'check_circle',
      position: 'top'
    })
  },

  // 警告消息
  msgWarning(message) {
    Notify.create({
      message: message,
      color: 'warning',
      icon: 'warning',
      position: 'top'
    })
  },

  // 弹出提示
  alert(message) {
    return Dialog.create({
      title: '系统提示',
      message: message,
      cancel: false
    })
  },

  // 错误提示
  alertError(message) {
    return Dialog.create({
      title: '系统提示',
      message: message,
      color: 'negative',
      icon: 'error',
      cancel: false
    })
  },

  // 成功提示
  alertSuccess(message) {
    return Dialog.create({
      title: '系统提示',
      message: message,
      color: 'positive',
      icon: 'check_circle',
      cancel: false
    })
  },

  // 警告提示
  alertWarning(message) {
    return Dialog.create({
      title: '系统提示',
      message: message,
      color: 'warning',
      icon: 'warning',
      cancel: false
    })
  },

  // 确认窗体
  confirm({ title = '系统提示', message, action }) {
    return Dialog.create({
      title: title,
      message: message,
      color: 'warning',
      icon: 'warning',
      ok: {
        label: '确定',
        color: 'primary'
      },
      cancel: {
        label: '取消',
        color: 'grey'
      },
      persistent: true
    }).onOk(action)
  },

  // 提交内容
  prompt(message) {
    return Dialog.create({
      title: '系统提示',
      message: message,
      prompt: {
        model: '',
        type: 'text' // 可以改为 'textarea' 如果需要多行输入
      },
      color: 'warning',
      icon: 'warning',
      ok: {
        label: '确定',
        color: 'primary'
      },
      cancel: {
        label: '取消',
        color: 'grey'
      },
      persistent: true
    })
  },

  // 打开遮罩层 (Quasar 的 Loading)
  loading(message = '加载中...') {
    loadingInstance = Loading.show({
      message: message,
      boxClass: 'bg-grey-9 text-white',
      spinnerColor: 'white'
    })
  },

  // 关闭遮罩层
  closeLoading() {
    if (loadingInstance) {
      loadingInstance.hide()
      loadingInstance = null
    }
  }
}
